package com.zhoukx.liskov;

/**
 * @ClassName Liskov
 * @Description: 里式替换原则
 *                 问题1：
 *                      子类会重写父类的方法，增加系统的复杂程度
 *                 解决办法：
 *                      原来的父类和子类都继承一个更通俗的基类，原有的继承关系去掉，
 *                          采用依赖，聚合，组合等关系代替.
 * @Author zhoukx
 * @Date 2020/8/4
 **/
public class Liskov {
    public static void main(String[] args) {
//        A a = new A();
//        System.out.println("11-3=" + a.func1(11, 3));
//        System.out.println("1-8=" + a.func1(1, 8));
//        System.out.println("-----------------------");
        B b = new B();
        System.out.println("11-3=" + b.func1(11, 3));
        System.out.println("1-8=" + b.func1(1, 8));
        System.out.println("11+3+9=" + b.func2(11, 3));
    }
}

class A{
    public int func1(int  num1,int num2){
        return  num1 -num2;
    }
}
// 增加一个新功能：完成两个数相加，然后求和
class  B extends A{

    @Override
    public int func1(int  a, int b){
        return  a + b;
    }
    public int func2(int  a,int b){
        return  func1(a,b) +9;
    }
}
